package twelfth.对象序列化;

import java.io.*;

public class 从文件中将对象反序列化 {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        File file = new File("D:\\WorkSpaces\\JavaDevelopBase_start_329\\src\\twelfth\\ObjectOutputStream.txt");
        FileInputStream fis = new FileInputStream(file);
        ObjectInputStream ois = new ObjectInputStream(fis);
        Object obj = ois.readObject();
        ois.close();
        System.out.println(obj);
    }
}
/**
 * 如果用户想根据自己的需要选择被序列化的属性，就可以用另一种序列化接口 Externalizable接口
 *
 * 说明：可不可以让所有的类都实现接口
 * 既然这个接口中没有任何的方法，也不会让实现这个接口的类增加不必要的操作，那么所有的类都实现这个接口是不是更好。
 * 回答：不可以，这样在日后的版本升级中会存在问题
 * 如果在以后的JDK版本中修改了这个Serailizable接口而且又增加了许多方法，则以往所有系统中的类都要修改了，这样肯定会麻烦。
 * 所以只用在需要序列化对象的类实现Serializable接口。
 */
/*
D:\WorkSpaces\Java\jdk-21\bin\java.exe "-javaagent:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=56173:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\WorkSpaces\JavaDevelopBase_start_329\out\production\JavaDevelopBase_start_329 twelfth.对象序列化.从文件中将对象反序列化
Person{name='王境泽', age=18}

Process finished with exit code 0

 */
